﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace BBCP.UI.Menu
{
    public class Menu
    {
        public string Name { get; set; }
        public IEnumerable<IMenuItem> MenuItems { get; set; }
        public void Dispaly()
        {
            Console.WriteLine("#### {0} ####", Name);
            foreach (var item in MenuItems)
            {
                item.Display();
            }
        }

        public void Run()
        {
            bool _continue = true;
            while (_continue)
            {
                Dispaly();
                var key = Console.ReadKey().KeyChar;
                Console.WriteLine();
                var selectedMenuItem = MenuItems.FirstOrDefault(n => n.ItemKey.ToString().Equals(key.ToString(), StringComparison.InvariantCultureIgnoreCase));
                if (selectedMenuItem != null)
                {
                    if (selectedMenuItem.Task != null)
                    {
                        _continue = selectedMenuItem.Task.Run();
                    }
                    else
                    {
                        Console.WriteLine("Brak implementacji funkcjonalności");
                    }
                }
                else
                {
                    Console.WriteLine("Zła wartość, podaj inną");
                }
            }
        }

    }
}
